package com.letoken.platform.app.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.letoken.platform.repo.admin.po.AdminIssueConfig;
import com.letoken.platform.repo.app.po.AppUserIssue;
import com.letoken.platform.repo.app.po.AppUserTeam;

import java.math.BigDecimal;

/**
 * <p>
 * Le账户-用户铸币发行信息 服务类
 * </p>
 *
 * @author 作者
 * @since 2022-12-10
 */
public interface AppUserIssueService extends IService<AppUserIssue> {

    int updateUserIssueByUseIid(BigDecimal issueAmount, BigDecimal circulationAmount, BigDecimal circulationRemain, Integer userId,Integer countDown,Integer rewardTime);

    void sharingCirculationRewards(Integer userId, BigDecimal rate, Integer releaseType,Integer circulateDuration);

    void upgrade(Integer userId, BigDecimal amount,Integer inviterId,Integer type);

     void  addTeamValue(Integer userId,BigDecimal amount,Integer type);

    void ecologicalRewards(AppUserTeam appUserTeam);

    void mintRewards(Integer userId, BigDecimal rate,BigDecimal amounts,Integer id);


    void mintRewardsChange(Integer userId, BigDecimal rate,BigDecimal amounts,Integer id);

    void upgradeUPdate(Integer userId, BigDecimal amount,Integer type,AdminIssueConfig mintConfig);


    BigDecimal circulate(AppUserIssue appUserIssue, Integer type, Integer isRewardTime, Integer countDown,BigDecimal rate,String no,Integer operateUserId,BigDecimal newTeamIssue,BigDecimal addTime);


    void mintRewardsChangeV2(AppUserTeam appUserTeam,String no,AdminIssueConfig adminIssueConfig);

    void ecologicalRewardsV2(AppUserTeam appUserTeam,String no,AdminIssueConfig adminIssueConfig);

    void circulatesss();

    void peerLevelReward(Integer userId,BigDecimal amount,String no);

    void useCoupons(Integer cardId,AdminIssueConfig adminIssueConfig);
}
